全部学科
Python全栈
python
NodeJS全栈
nodejs
📅 2026-05-15 5 分钟 ✍️ juanwangdev

MySQL LIMIT 限制结果

LIMIT 子句用于限制 SELECT 语句返回的记录数量,是实现分页的核心。

基本语法

SQL
-- 返回前 N 条记录
SELECT 列名 FROM 表名 LIMIT N;

-- 跳过 M 条,返回 N 条(分页)
SELECT 列名 FROM 表名 LIMIT M, N;
SELECT 列名 FROM 表名 LIMIT N OFFSET M;

限制返回数量

SQL
-- 创建示例表
CREATE TABLE products (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    price DECIMAL(10, 2)
);

INSERT INTO products VALUES
(1, '手机', 2999),
(2, '电脑', 5999),
(3, '耳机', 299),
(4, '平板', 1999),
(5, '键盘', 199);

-- 只返回前3条
SELECT * FROM products LIMIT 3;

-- 返回价格最高的2个商品
SELECT * FROM products ORDER BY price DESC LIMIT 2;

分页查询

SQL
-- LIMIT offset, count
-- offset: 跳过的记录数(从0开始)
-- count: 返回的记录数

-- 第1页(每页3条)
SELECT * FROM products LIMIT 0, 3;
-- 等价于
SELECT * FROM products LIMIT 3 OFFSET 0;

-- 第2页
SELECT * FROM products LIMIT 3, 3;
-- 等价于
SELECT * FROM products LIMIT 3 OFFSET 3;

-- 第3页
SELECT * FROM products LIMIT 6, 3;
-- 等价于
SELECT * FROM products LIMIT 3 OFFSET 6;

分页公式

SQL
-- 页码从1开始,每页 pageSize 条
-- offset = (page - 1) * pageSize

-- 第 page 页
SET @page = 2;
SET @pageSize = 3;
SELECT * FROM products
LIMIT (@page - 1) * @pageSize, @pageSize;

与 ORDER BY 配合

SQL
-- 获取销量最高的前5名
SELECT * FROM products ORDER BY sales DESC LIMIT 5;

-- 获取第2-4名
SELECT * FROM products ORDER BY sales DESC LIMIT 1, 3;

LIMIT 必须放在 SELECT 语句最后,ORDER BY 之后。

要点总结

  • LIMIT N 返回前 N 条记录
  • LIMIT M, N 跳过 M 条,返回 N 条
  • 分页公式:LIMIT (page-1)*pageSize, pageSize
  • 常与 ORDER BY 配合获取排名数据
想在手机上练习这篇文章的配套题目?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一篇 MySQL ORDER BY 排序
下一篇 → MySQL 聚合函数
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码